package org.example.rabbitmq.consumer.repository;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import java.util.Set;

/**
 * 存储已创建队列，消息消费者实例启动时，监听存储的所有队列
 */
@Component
public class QueueRepository {
    private static final String DATA_SYNC_QUEUES = "data-sync-queues";
    @Autowired
    StringRedisTemplate redisTemplate;

    // 存储到Redis，有新的消费者启动时，需要使用里面信息
    public void add(String queueName) {
        redisTemplate.opsForSet().add(DATA_SYNC_QUEUES, queueName);
    }

    // 获取已经在用的队列
    public Set<String> getQueueNames() {
        return redisTemplate.opsForSet().members(DATA_SYNC_QUEUES);
    }
}